package comp.movel.ubiqua;

import java.io.IOException;
import java.util.ArrayList;

import org.xmlpull.v1.XmlPullParserException;

import android.util.Log;
import android.widget.Toast;

import comp.movel.ubiqua.bluetooth.Constants;
import comp.movel.ubiqua.model.Placar;
import comp.movel.ubiqua.ws.ConexaoWebService;
import comp.movel.ubiqua.ws.PerguntaWSDL;

public class JogoController {
	private PerguntaWSDL perguntaCorrente;
	private Placar placar;
	private JogoActivity jogoActivity;
	private ArrayList<Integer> generatedNumbers = new ArrayList<Integer>();

	public JogoController(JogoActivity jogoActivity) {
		this.jogoActivity = jogoActivity;
	}

	public void rodada() {
		Integer id = -100;

		do {
			id = (int) (Math.random() * 100);
			Log.d(Constants.TAG, "id gerado = " + id);
		} while (generatedNumbers.contains(id));

		generatedNumbers.add(id);

		Log.w("id", "" + id);
		try {
			perguntaCorrente = ConexaoWebService.getPergunta(id);
			if (placar == null) {
				placar = new Placar(perguntaCorrente.id);
			} else {
				placar.setIdPerguntaCorrente(perguntaCorrente.id);
			}

			// Toast.makeText(this, "Jogadores: "+ mBluetoothAdapter.getName() +
			// mConnectedDeviceName, Toast.LENGTH_LONG).show();
			jogoActivity.atualizarTela();

		} catch (IOException e) {
			Log.e("Erro", "Sem Internet");
			Toast.makeText(jogoActivity, jogoActivity.getResources().getString(R.string.erro1),
					Toast.LENGTH_SHORT).show();
			jogoActivity.finish();
			return;
		} catch (XmlPullParserException e) {
			Toast.makeText(jogoActivity, jogoActivity.getResources().getString(R.string.erro2),
					Toast.LENGTH_SHORT).show();
			jogoActivity.finish();
			return;
		}
	}
	
	public Placar getPlacar(){
		return placar;
	}
	
	public void setPlacar(Placar novoPlacar){
		placar = novoPlacar;
	}
	
	public PerguntaWSDL getPergunta(){
		return perguntaCorrente;
	}
	
	public void setPergunta(PerguntaWSDL pergunta){
		perguntaCorrente = pergunta;
	}
	
	public void addNumero(Integer n){
		generatedNumbers.add(n);
	}
	
	public void receberPlacar(){
		try {
			perguntaCorrente = ConexaoWebService.getPergunta(placar.getIdPerguntaCorrente());
			generatedNumbers.add(placar.getIdPerguntaCorrente());
			jogoActivity.atualizarTela();
		} catch (IOException e) {
			Log.e("Erro", "Sem Internet");
			Toast.makeText(jogoActivity, jogoActivity.getResources().getString(R.string.erro1),
					Toast.LENGTH_SHORT).show();
			jogoActivity.finish();
			return;
		} catch (XmlPullParserException e) {
			Log.e("Erro", "Sem Internet");
			Toast.makeText(jogoActivity, jogoActivity.getResources().getString(R.string.erro1),
					Toast.LENGTH_SHORT).show();
			jogoActivity.finish();
			return;
		}
	}
}
